home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / jetpilot.arc / JETPILOT.BAS (.txt) next >
Encoding:
GW-BASIC  |  1984-05-17  |  13.7 KB  |  221 lines

  1. 1  ' JET PILOT -- Flight Simulation Program
  2. 2  '
  3. 10  P$="###.##":GOSUB 5000:GOSUB 8020
  4. 20  DEFSTR O:DIM O(10):O(1)="THROTTLE":O(2)="CONTROL":O(3)="FLAP":O(4)="SPD BRAKE":O(5)="LND GEAR":O(6)="SPOILER":O(7)="TAIL HOOK":O(8)="WEAPONS":O(9)="FUEL SYSTEM":O(10)="F I R E  W A R N I N G"
  5. 30  O1(1)="VERY POOR":O1(2)="POOR":O1(3)="AVERAGE":O1(4)="GOOD":O1(5)="EXCELLENT":O2(1)="FOXFIRE":O2(2)="HUNTER":O2(3)="AVENGER":O2(4)="SWIFT-SWORD":O2(5)="GAUNTLET"
  6. 35  O3(1)="F-18":O3(2)="F-14":O3(3)="F-4":O3(4)="A-6":O3(5)="A-6"
  7. 40  CLS:LD=1:TF=0:K1=10:K2=2:K3=0.5:K4=1.1:K5=7.5:K7=9.999E-06:K8=4.9999E-05:K9=5:KA=0.01:KB=2.5:RA=57.2958:W=350000:KE=0.2:KF=1:AS=0:VH=0:VV=0:T=0:TR=0:Z4=3.5/RA:Z5=0.02:WL=0:X9=0:Y9=0:DY=0:R1=0:R9=0
  8. 42  T7=30+(INT(30*RND(1))):TS=INT(10*RND(1))
  9. 60  DT=1:FL=2750*100
  10. 70  WZ=1:IF FL<82500 THEN PRINT "INSUFFICIENT FUEL":GOTO 60 ELSE IF FL>(200000+75000*DT) THEN PRINT "EXCESSIVE FUEL":GOTO 60
  11. 80  XT=INT(50*RND(1))-INT(50*RND(1)):YT=INT(50*RND(1))-INT(50*RND(1)):W1=INT(360*RND(1)):WS=INT(400*RND(1))+250:AT=10000+INT(30000*RND(1))-INT(20000*RND(1)):IF AT<0 THEN GOTO 80
  12. 82  LOCATE 10,10:PRINT"J E T   P I L O T -- A Flight Simulation Game":FOR DELAY=1 TO 1000:NEXT
  13. 84  LOCATE 15,10:INPUT"Do you need instructions";A$:IF LEFT$(A$,1)="Y" THEN GOSUB 1860
  14. 90  LOCATE 17,10:INPUT "CARRIER LAUNCH (Y/N)";A$:IF LEFT$(A$,1)="N" OR A$="" THEN 100 ELSE D(0)=650:Z4=1.5/RA:Z5=0:AE=1:TF=0:CV=1:V1=(INT(36*RND(1))-1)*10:V2=((INT(25*RND(1))+10)*6080)/3600:HD=V1:H(TF)=V1:GOTO 120
  15. 100  O(7)="DRAG CHUTE":AE=20:CX=1:FOR I=0 TO 7:D(I)=3500+(INT(40*RND(1))*100):H(I)=(INT(36*RND(1))*10):NEXT I:DX=D(0):HD=H(0)+INT(10*RND(1))-INT(10*RND(1)):FOR I=1 TO 7:X(I)=INT(120*RND(1))-INT(120*RND(1)):Y(I)=INT(120*RND(1))-INT(120*RND(1)):NEXT I
  16. 105  X(0)=0:XP=0:Y(0)=0:YP=0:IF HD>=360 THEN HD=HD-360:IF H(0)=360 THEN H(0)=0
  17. 110  LOCATE 18,10:INPUT "DISPLAY AIRPORTS (Y/N)";B$:IF LEFT$(B$,1)="N" THEN 120 ELSE CLS:GOSUB 1840:TF=0:LO=0:PRINT:INPUT "NEW AIRPORTS (Y/N)";B$:IF LEFT$(B$,1)="N" THEN 120 ELSE GOSUB 5000:GOTO 100
  18. 120  DR=1:CLS:MT=5:LOCATE 6,11:PRINT  USING "AIRCRAFT ASSIGNED IS AN \  \ NO. #####.";O3(INT(4*RND(1)));INT(32000*RND(1)):LOCATE 7,9:PRINT "  IT HAS HAD ";O1(MT);" MAINTENANCE.";
  19. 125  PRINT:PRINT:GOSUB 10100:CLS
  20. 130  GOSUB 510
  21. 140  IF (ES=0 AND LD=0) OR (TR<10 AND TR>=0 AND T1=0 AND LD=0) OR FL=0 THEN LOCATE 11,21:PRINT "F L A M E O U T";:RT=0:FU=0:ES=0:ST=0
  22. 150  TR=(TR+T1)*ES:IF T1>0 AND TR>TH THEN TR=TH:T1=0 ELSE IF T1<0 AND TR<TH THEN TR=TH:T1=0
  23. 160  IF TR>100 THEN K6=20000:KC=7.5 ELSE K6=12500:KC=2.5
  24. 170  T=K6*TR*ES:FL=FL-ABS(KC*TR):IF FL<=0 THEN FL=0:T=0:TR=0
  25. 180  WT=W+FL+DT*5000+1000*WL:SP=SP+S5:IF SP>S6 THEN SP=S6:S5=0
  26. 190  AN=AN+A2:IF A2>0 AND AN>AD THEN AN=AD:A2=0 ELSE IF A2<0 AND AN<AD THEN AN=AD:A2=0
  27. 200  IF LD=1 THEN 210 ELSE 230
  28. 210  IF AS<120 OR AN<0 THEN AN=0: ELSE IF AN>0 THEN NS=0
  29. 220  BK=BK+B1:IF BK>BS THEN BK=BS:B1=0:GOTO 240 ELSE 240
  30. 230  NS=0:BN=BN+B9:IF B9>0 AND BN>BD THEN BN=BD:B2=0 ELSE IF B9<0 AND BN<BD THEN BN=BD:B2=0
  31. 240  A3=AN/RA:A1=(6*AN+1.5)/RA:FA=FA+F1:IF FA>FS THEN FA=FS:F1=0
  32. 250  SB=SB+S1:IF SB>S2 THEN SB=S2:S1=0
  33. 260  CL=K1*(SIN(A1)-KB*(VV/(AS+1))):L=CL*(AS^2)+10*FA*AS:L=L-L*(SP/100):SS=1300-(AL/100):IF SX=1 THEN 280 ELSE IF AS>0.95*SS THEN SS=0.9*AS:SX=1:GOTO 270 ELSE 280
  34. 270  IF AS<SS THEN SX=0:GOTO 260: ELSE SD=SQR((AS^2/SS^2)-1):GOTO 290
  35. 280  SD=(1/SQR(1-(AS^2/SS^2)))-0.5
  36. 290  D=((K2*WT)/((AS/2)^2+10))+AS*(K3*(AS/2)+(75*(1-LG))+2*FA+2*SB +1000*CE+50*DT+0.01*WL+0.000999999*J)+2500*BK:D=D*SD:IF AL>15000 THEN Z1=15000/AL:L=L*Z1:D=D*Z1:IF AL>22500 THEN T=T*22500/AL
  37. 300  HC=K7*(COS(A3)*T-K9*SIN(A3)*ABS(L)-K5*COS(A3)*D-SIN(A3)*KF*WT):IF CX=0 THEN HC=0
  38. 310  VC=K8*(COS(A3)*L+KE*SIN(A3)*T-ABS(SIN(BN/RA)*L)-ABS(SIN(A3)*D)-COS(A3)*K4*WT):IF (LD=1 AND VC<0) OR CX=0 THEN VC=0:AL=0 ELSE AL=AL+VV
  39. 320  VH=VH+HC:IF LD=1 AND VH<0 THEN VH=0
  40. 330  VV=VV+VC:GF=((HC+VC)/32)+(1/COS(BN/RA)):AS=SQR(VH^2+VV^2):HD=HD+(BN/22)*3+NS*(AS/80):IF CV=1 AND CX=0 THEN AS=V2:VH=V2:HD=V1: ELSE IF HD<0 THEN HD=HD+360 ELSE IF HD>=360 THEN HD=HD-360
  41. 340  IF INT((20*2^MT)*RND(1))=MT*10 THEN GOSUB 1300 ELSE IF INT(100*RND(1))=50 THEN W1=INT(360*RND(1)):WS=INT(500*RND(1))+250:AT=AT-INT(5000*RND(1))+INT(5000*RND(1)):IF AT<=0 THEN GOSUB 1560
  42. 350  IF WZ=0 THEN TD=0:LT=0:W1=0:WS=0:AT=0:GOTO 360 ELSE XT=XT+COS((W1-90)/RA)*(WS/6080):YT=YT+SIN((W1-90)/RA)*(WS/6080)
  43. 360  IF RK<>0 THEN FOR R2=1 TO R1:IF R(R2)=10 THEN LOCATE 11,21:PRINT "F I R E  W A R N I N G";:R9=R9+1:IF R9=15 THEN 1510 ELSE IF FU=0 THEN R9=0:R(R2)=0:R1=R1-1: ELSE 370 ELSE LOCATE 11,21:PRINT O(R(R2));" MALFUNCTION";:NEXT R2
  44. 370  Z2=(HD-90)/RA:Z3=AS/6080:XP=XP+COS(Z2)*Z3:YP=YP+SIN(Z2)*Z3
  45. 374  DL=SQR((X(TF)-XP)^2+(Y(TF)-YP)^2):GOSUB 1570:IF CV=1 THEN X(TF)=X(TF)+V2*COS((V1-90)/RA)/6080:Y(TF)=Y(TF)+V2*SIN((V1-90)/RA)/6080:DY=SQR((X(TF)-X9)^2+(Y(TF)-Y9)^2):X9=X(TF):Y9=Y(TF) ELSE DY=0
  46. 380  IF LD=0 THEN 400 ELSE IF AL>0 THEN LD=0:DR=0:GOTO 400 ELSE IF H(TE)=360 AND HD<350 THEN H(0)=0 ELSE IF H(TE)=0 AND HD>350 THEN H(0)=360
  47. 390  IF CX=1 AND (DX<0 OR (AS>100 AND ABS(HD-H(TE))>2)) THEN 1500 ELSE 470
  48. 400  IF TF<>TE THEN DX=D(TF):TE=TF
  49. 410  IF DL<=0.02 AND AL>0 THEN DR=1
  50. 420  IF AS<215 THEN 1550 ELSE IF AL<=0 THEN 1480 ELSE Z0=1.2*SIN(6*A3)-(VV/(AS+1))+SIN(ABS(BN/RA)):IF Z0>1.1 AND SP=0 THEN 1470
  51. 430  IF GF>10 OR GF<-5 THEN 1520
  52. 440  IF DR=1 THEN 470 ELSE GS=AL-ABS(SIN(Z4)*(DL+Z5)*6080):LC=SIN((H(TE)-(LO+180))/RA)*DL*6080:IF WA=0 OR WZ=0 THEN 470 ELSE TD=SQR((XT-XP)^2+(YT-YP)^2+((AT/6080)-(AL/6080))^2):GOSUB 1650:IF LT<0 THEN LT=LT+360 ELSE IF LT>=360 THEN LT=LT-360
  53. 450  IF TD*6080<300 THEN 1480 ELSE IF WL=0 THEN WA=0:GOTO 470
  54. 460  IF WF=1 THEN WL=WL-1:WF=0:IF TD<5+INT(2*RND(1))-INT(2*RND(1)) AND (HD<LT+1.5 AND HD>LT-1.5) THEN GOSUB 1530:WA=0:WZ=0 ELSE W1=INT(360*RND(1)):WS=250+INT(400*RND(1)):AT=AT+INT(5000*RND(1))-INT(5000*RND(1)):IF AT<=0 THEN GOSUB 1560 ELSE GOSUB 1540
  55. 470  IF CX=0 THEN IF DX=0 THEN DX=150:GOTO 500 ELSE 500
  56. 480  IF CV=1 THEN SF=1 ELSE SF=2
  57. 490  IF DR=1 THEN DX=DX+DY*6080-SF*VH: ELSE IF (TE<>TF) OR (CV=1 AND CX=1) THEN DX=D(TF)
  58. 500  LOCATE 11,1:GOSUB 5100:A$=INKEY$:IF A$="" THEN 130 ELSE 810
  59. 510  POSW=0:GOSUB 45000:LOCATE POSX,POSY:PRINT  USING "AIRSPEED #### KTS.";AS*3600/6080;:IF AN>0 THEN Z$=CHR$(24) ELSE IF AN<0 THEN Z$=CHR$(25) ELSE Z$=" "
  60. 520  LOCATE 1,21:PRINT  USING "ATTITUDE   ##.## !";ABS(AN);Z$;:IF BN<0 THEN Z$="L" ELSE IF BN>0 THEN Z$="R" ELSE Z$=" "
  61. 530  LOCATE 1,43:PRINT "ALTITUDE ";:IF AL>18000 THEN PRINT USING "F/L ###";AL/100;:PRINT SPACE$(79-POS(0)); ELSE PRINT USING "#####.# FEET";AL;
  62. 540  IF VV>0 THEN Z1$=CHR$(24) ELSE IF VV<0 THEN Z1$=CHR$(25) ELSE Z1$=" "
  63. 550  LOCATE 2,1:PRINT  USING "HEADING ###.#       BANK ##.# !           CLIMB ! #####.# FT/MN";HD;ABS(BN);Z$;Z1$;ABS(VV*60);
  64. 560  IF DT=1 THEN D$="ON " ELSE D$="OFF"
  65. 570  LOCATE 3,1:PRINT  USING "THRUST ###%         SPOILERS ###%         G. LOAD +##.#";TR;SP;GF;
  66. 580  LOCATE 4,1:PRINT "LNDG. GEAR ";:IF LG=0 THEN PRINT CHR$(25);: ELSE PRINT CHR$(24);
  67. 590  LOCATE 4,17:PRINT  USING "FUEL ###%    D.T. \ \";FL/2750;D$;
  68. 600  LOCATE 5,1:PRINT "FLAP POS. ";:IF FA>0 THEN PRINT CHR$(25); USING " ###%";FA;: ELSE PRINT CHR$(24);"      ";
  69. 610  TS=TS+3:IF TS>=60 THEN TS=TS-60:TM=TM+1:IF TM=60 THEN T9=T9+1
  70. 620  LOCATE 5,21:PRINT  USING "E.T. ##:##:##";T9;TM;TS;
  71. 630  LOCATE 4,43:PRINT "SPEED BRAKES";:IF SB>0 THEN PRINT CHR$(32);CHR$(26);CHR$(27);INT(SB);SPACE$(79-POS(0)); ELSE PRINT CHR$(32);CHR$(27);CHR$(26);SPACE$(79-POS(0));
  72. 640  IF CV=1 THEN LOCATE 5,43:PRINT "TAIL HOOK ";:IF J=1 THEN PRINT CHR$(25);:GOTO 660 ELSE PRINT CHR$(24);:GOTO 660
  73. 650  LOCATE 5,43:PRINT "DRAG CHUTE ";:IF CE=0 AND CF=0 THEN PRINT "STOWED"; ELSE IF CF=0 THEN PRINT "DEPLOYED"; ELSE PRINT "RELEASED";
  74. 660  LOCATE 6,1:PRINT  USING "MISSLES: #";WL;:IF WA=1 THEN LOCATE 6,14:PRINT  USING "ARMED  TARGET BEARING ###.#: TARGET RANGE ###.#";LT;TD;:IF AT-AL>0 THEN PRINT CHR$(24); ELSE PRINT CHR$(25);
  75. 670  IF WA=1 THEN LOCATE 7,1:PRINT  USING "T.C. ###    T.S. ###";W1;WS;
  76. 680  IF LD=0 THEN IF WA=0 THEN LOCATE 6,14:PRINT SPACE$(79-POS(0)); ELSE GOTO 700 ELSE LOCATE 6,43:PRINT "BRAKES";:IF BK<>0 THEN PRINT USING " ON ###%";BK; ELSE PRINT " OFF";SPACE$(79-POS(0));
  77. 690  IF CX=0 THEN LOCATE 6,21:PRINT "CAT. READY";
  78. 700  IF WA=1 THEN 710 ELSE IF LD=1 OR DL<6.5 THEN LOCATE 7,1:PRINT  USING "FIELD REMAINING ####";DX;: ELSE LOCATE 7,1:PRINT "                     ";
  79. 710  LOCATE 7,30:PRINT  USING "RWY HDG ###  RWY LNG ####";H(TE);D(TF);
  80. 720  IF NV=0 THEN GOSUB 5100:RETURN
  81. 730  LOCATE 8,1:PRINT  USING "AIRPORT #:  BEARING ###.#:   RANGE ###.##";TF;LO;DL;
  82. 740  IF LD=0 AND DL<18 AND ABS(LC)<999.99 THEN LOCATE 9,1 ELSE GOSUB 5100:RETURN
  83. 750  IF CV=1 THEN L1=7.5:G1=3:G2=0.01: ELSE L1=15:G1=10:G2=-10
  84. 760  IF LC<-L1 THEN PRINT "RIGHT OF";: ELSE IF LC>L1 THEN PRINT "LEFT OF";: ELSE PRINT "ON LOCAL                      ";:GOTO 780
  85. 770  PRINT " LOCAL ";:PRINT USING P$;ABS(LC);
  86. 780  LOCATE 9,34:PRINT ;:IF GS>G1 THEN PRINT "ABOVE";: ELSE IF GS<G2 THEN PRINT "BELOW";: ELSE PRINT "ON G/S";SPACE$(79-POS(0));:GOTO 800
  87. 790  PRINT USING " G/S ####.#";ABS(GS);:PRINT SPACE$(79-POS(0));
  88. 800  RETURN 
  89. 810  LOCATE 11,21:PRINT ;:IF A$="T" THEN 830 ELSE IF A$="A" THEN 880 ELSE IF A$="D" THEN 910 ELSE IF A$="F" THEN 930 ELSE IF A$="L" THEN 980 ELSE IF A$="J" THEN 1020 
  90. 815  IF A$="H" THEN 1040 ELSE IF A$="X" THEN 970 ELSE IF A$="C" THEN 1090 ELSE IF A$="W" THEN 1070 ELSE IF A$="S" THEN 1130 ELSE IF A$="Z" THEN 1110
  91. 820  IF A$="B" THEN 1180 ELSE IF A$="N" THEN 1160 ELSE IF A$="P" THEN 1220 ELSE IF A$="E" THEN 1430 ELSE IF A$="K" THEN 860 ELSE 130
  92. 830  IF R3=1 OR ES=0 THEN 130 ELSE INPUT "THROTTLE SETTING (-10 TO 120)";TH
  93. 840  IF TH<-10 OR TH>120 THEN PRINT "UNABLE":GOTO 130
  94. 850  T1=(TH-TR)/5:GOTO 130
  95. 860  IF RK=1 THEN RK=0 ELSE IF RK=0 AND R1<>0 THEN RK=1
  96. 870  GOTO 130
  97. 880  IF R4=1 THEN 130 ELSE AH=0:INPUT "ATTITUDE (-180 TO 180)";AD
  98. 890  IF AD<-180 OR AD>180 THEN PRINT "UNABLE":GOTO 130
  99. 900  A2=(AD-AN)/3:GOTO 130
  100. 910  IF R=9 THEN 130 ELSE IF DT=1 THEN DT=0:IF FL>192500 THEN FL=192500
  101. 920  GOTO 130
  102. 930  IF R5=1 THEN 130 ELSE INPUT "FLAP SETTING (0 TO 100)";FS
  103. 940  IF FS>100 OR FS<0 THEN PRINT "UNABLE":GOTO 130
  104. 950  IF AS>464 THEN LOCATE 12,21:PRINT "AIRSPEED EXCESSIVE":GOTO 130
  105. 960  F1=(FS-FA)/4:GOTO 130
  106. 970  IF CX=0 THEN CX=1:HC=VH+220:GF=6.1:AS=HC:VH=HC:DR=0:LD=0:AL=40+INT(10*RND(1))-INT(10*RND(1)):AN=10:GOTO 130 ELSE 130
  107. 980  IF R7=1 THEN 130 ELSE IF LD=1 THEN PRINT "ON GROUND --- LANDING GEAR OVERRIDDEN":GOTO 130
  108. 990  IF AS>385 THEN PRINT "AIRSPEED EXCESSIVE":GOTO 130
  109. 1000  IF LG=0 THEN LG=1 ELSE LG=0
  110. 1010  GOTO 130
  111. 1020  IF CV=0 OR R9=1 THEN 130 ELSE IF J=0 THEN IF AS<385 THEN J=1 ELSE LOCATE 11,21:PRINT "AIRSPEED EXCESSIVE";: ELSE J=0
  112. 1030  GOTO 130
  113. 1040  IF LD=1 OR R4=1 THEN 130
  114. 1050  INPUT "BANK";BD:IF BD<-90 OR BD>90 THEN 1050
  115. 1060  B9=(BD-BN)/2:GOTO 130
  116. 1070  IF R0=1 THEN 130 ELSE INPUT "ARM/DISARM/FIRE/JET";A$:IF LEFT$(A$,1)="A" THEN WA=1 ELSE IF LEFT$(A$,1)="J" THEN WL=0:WA=0: ELSE IF LEFT$(A$,1)="D" THEN WA=0 ELSE IF LEFT$(A$,1)="F" AND WZ=1 AND WL>0 THEN WF=1 ELSE WF=0
  117. 1080  GOTO 130
  118. 1090  IF R9=1 THEN 130 ELSE IF CF=1 THEN 130 ELSE IF CE=0 THEN CE=1:CF=0: ELSE CE=0:CF=1
  119. 1100  GOTO 130
  120. 1110  IF R8=1 THEN 130 ELSE INPUT "SPOILERS";S6:IF S6<0 OR S6>100 THEN 1110
  121. 1120  S5=(S6-SP)/4:GOTO 130
  122. 1130  IF R6=1 THEN 130 ELSE INPUT "SPEED BRAKE (0 TO 100)";S2
  123. 1140  IF S2>100 OR S2<0 THEN PRINT "UNABLE":GOTO 130
  124. 1150  S1=(S2-SB)/4:GOTO 130
  125. 1160  INPUT "NOSEWHEEL (-30 TO 30)";NS:IF NS>30 OR NS<-30 THEN NS=0
  126. 1170  GOTO 130
  127. 1180  IF LD=0 THEN 130
  128. 1190  INPUT "BRAKE SETTING";BS
  129. 1200  IF BS>100 OR BS<0 THEN 1190
  130. 1210  B1=(BS-BK)/3:GOTO 130
  131. 1220  INPUT "NAV-SYSTEM (ON, OFF, DISPLAY, 0-7)";B$
  132. 1230  IF LEFT$(B$,1)="D" AND CV=0 THEN CLS:L9=LO:TJ=TF:GOSUB 1840:TF=TJ:LO=L9:INPUT "READY";A$:CLS:GOTO 130
  133. 1240  IF B$="ON" THEN NV=1:GOTO 1270
  134. 1250  IF B$="OFF" THEN NV=0:GOTO 130
  135. 1260  IF VAL(B$)<0 OR VAL(B$)>7 THEN 1220 ELSE TF=VAL(B$):GOTO 1280
  136. 1270  LOCATE 12,21:PRINT ;:INPUT "ENTER AIRPORT (0-7)";TF
  137. 1280  IF TF<>0 AND CV=1 THEN TF=0:GOTO 130
  138. 1290  IF TF<0 OR TF>7 THEN 1270 ELSE 130
  139. 1300  R=INT(10*RND(1)):RK=1:R1=R1+1:R(R1)=R:ON R GOTO 1310,1320,1330,1340,1350,1360,1370,1380,1390,1400
  140. 1310  R3=1:TR=120:GOTO 1410
  141. 1320  R4=1:AN=INT(50*RND(1))-INT(50*RND(1)):AD=AN:BN=INT(30*RND(1))-INT(30*RND(1)):BD=BN:GOTO 1410
  142. 1330  R5=1:FA=INT(100*RND(1)):FS=FA:GOTO 1410
  143. 1340  R6=1:SB=INT(100*RND(1)):S2=SB:GOTO 1410
  144. 1350  R7=1:LG=(INT(2*RND(1)))-1:GOTO 1410
  145. 1360  R8=1:SP=INT(100*RND(1)):S6=SP:GOTO 1410
  146. 1370  R9=1:IF CV=1 THEN J=(INT(2*RND(1)))-1:GOTO 1410 ELSE CF=INT(RND(1)+0.5):GOTO 1410
  147. 1380  R0=1:WA=0:GOTO 1410
  148. 1390  FL=0:GOTO 1410
  149. 1400  RC=0
  150. 1410  IF R1>1 THEN FOR I=1 TO R1-1:IF R=R(I) THEN R(R1)=0:R1=R1-1:R=0 ELSE NEXT I
  151. 1420  RETURN 
  152. 1430  LOCATE 11,21:PRINT "TURBINE OR EJECT";:INPUT A$
  153. 1440  IF A$="T" THEN CLS:X9=1:IF ES=0 THEN X9=0:GOTO 1710 ELSE 1710
  154. 1450  IF A$="E" THEN IF AL>AE AND ABS(AN)<45 AND ABS(BN)<25 AND AS<850 THEN CLS:LOCATE 7,17:PRINT  "SAFELY EJECTED":PRINT:PRINT:STOP: ELSE LOCATE 12,21:PRINT "CANNOT EJECT":GOTO 130
  155. 1460  GOTO 130
  156. 1470  LOCATE 11,21:PRINT "S T A L L";FOR DELAY=1 TO 700:NEXT DELAY:L=0:AN=-AN:IF VV>0 THEN VV=-VV:GOTO 440: ELSE VV=2*VV:GOTO 440
  157. 1480  IF CV=1 THEN 1490 ELSE IF WT<500000 AND DR=1 AND ABS(LC)<75 AND AS<380 AND VV>-25 AND AN>0 AND LG=0 THEN LD=1:GOTO 440: ELSE 1500
  158. 1490  IF WT<500000 AND DR=1 AND ABS(LC)<30 AND AS<380 AND VV>-25 AND AN>0 AND LG=0 AND J=1 THEN LD=1:AS=V2:VH=V2:VV=0:LD=1:CX=0:GOTO 440 ELSE 1500
  159. 1500  CLS:LOCATE 10,35:COLOR 23,0:PRINT  "C R A S H ";:COLOR 7,0:GOSUB 7000:IF LEFT$(ANS$,1)="Y" OR LEFT$(ANS$,1)="y" THEN GOTO 10 ELSE CLS:END
  160. 1510  CLS:LOCATE 10,31:COLOR 23,0:PRINT  "E X P L O S I O N";:COLOR 7,0:GOSUB 7000:IF LEFT$(ANS$,1)="Y" OR LEFT$(ANS$,1)="y" THEN GOTO 10 ELSE CLS:END
  161. 1520  CLS:LOCATE 10,35:COLOR 23,0:PRINT  "AIRCRAFT BROKE UP!";:COLOR 7,0:GOSUB 7000:IF LEFT$(ANS$,1)="Y" OR LEFT$(ANS$,1)="y" THEN GOTO 10 ELSE CLS:END
  162. 1530  LOCATE 11,21:PRINT "TARGET DESTROYED":MA=0:MZ=0:FOR Z9=1 TO 300:NEXT:RETURN 
  163. 1540  LOCATE 11,21:PRINT "MISSLE MISSED TARGET":FOR Z9=1 TO 300:NEXT:RETURN 
  164. 1550  LOCATE 12,21:PRINT "S P I N  -  F L A M E O U T";:TR=0:T=0:L=0:TH=0:AN=-(INT(30*RND(1))):HD=HD-INT(50*RND(1)):IF AL<=0 THEN 1480 ELSE 440
  165. 1560  LOCATE 11,21:PRINT "TARGET CRASHED":WA=0:WZ=0:FOR Z9=1 TO 300:NEXT:RETURN 
  166. 1570  XS=SGN(X(TF)-XP):YS=SGN(Y(TF)-YP)
  167. 1580  IF XS=0 AND YS=1 THEN LO=0:GOTO 1640
  168. 1590  IF XS=0 AND YS=-1 THEN LO=180:GOTO 1640
  169. 1600  IF TF=0 AND XP=0 AND YP=0 THEN 1640
  170. 1610  LA=ATN((Y(TF)-YP)/(X(TF)-XP))*RA
  171. 1620  IF XS=1 THEN LO=LA+90:GOTO 1640
  172. 1630  IF XS=-1 THEN LO=270+LA
  173. 1640  RETURN 
  174. 1650  X8=SGN(XT-XP):Y8=SGN(YT-YP)
  175. 1660  IF X8=0 AND Y8=1 THEN LT=0:RETURN 
  176. 1670  IF X8=0 AND Y8=-1 THEN LT=180:RETURN 
  177. 1680  LB=ATN((YT-YP)/(XT-XP))*RA
  178. 1690  IF X8=1 THEN LT=LB+90:RETURN 
  179. 1700  IF X8=-1 THEN LT=270+LB:RETURN 
  180. 1710  IF FL=0 THEN 130 ELSE LOCATE 6,5:PRINT  "ENGINE ";:IF ES=0 THEN PRINT "OFF";:IF X8=1 THEN TR=0:X8=0:CLS:GOTO 130 ELSE 1720: ELSE PRINT "ON ";:IF X9=1 THEN 1720 ELSE TR=10:CLS:GOTO 130
  181. 1720  LOCATE 7,5:PRINT  USING "TURB ROT. ##### RPM";RT;:LOCATE 8,5:PRINT "FUEL CONTROL ";:IF FU=0 THEN PRINT "OFF";: ELSE PRINT "ON ";
  182. 1730  IF ES=1 THEN RT=9000 ELSE IF FL=0 THEN FU=0
  183. 1740  RT=RT+ST*100+750*FU:IF RT>12000 AND FU=0 THEN 1510 ELSE IF RT>9000 AND FU=1 THEN ES=1 ELSE IF RT<4500 AND FU=1 THEN 1830 ELSE IF RT<0 THEN ST=0:RT=0:X9=0:X8=1
  184. 1750  T5=T7+RT/40+380*FU:IF T5>600 THEN T5=600
  185. 1760  T6=RT/73:IF T6>65 THEN T6=65
  186. 1770  TS=TS+INT(3*RND(1)):LOCATE 9,5:PRINT  USING "T5 ### C.    OIL PRESS ## PSI";T5;T6;
  187. 1780  <UNK! {0009}>A$= INKEY$:IF A$<>"" THEN 1790 ELSE 1710
  188. 1790  LOCATE 10,21:PRINT ;:IF A$="F" AND FU=0 THEN PRINT "FUEL ON      ":FU=1: ELSE IF A$="F" THEN PRINT "FUEL OFF     ":FU=0:T7=50+INT(50*RND(1))
  189. 1800  IF A$="S" AND ES=0 THEN PRINT "ENGINE SPIN     ":ST=3:GOTO 1710
  190. 1810  IF A$="S" AND ES=1 AND FU=0 THEN PRINT "ENGINE SHUTDOWN":ST=-4:ES=0:GOTO 1710
  191. 1820  GOTO 1720
  192. 1830  CLS:LOCATE 7,1:PRINT  "E N G I N E  F I R E":STOP 
  193. 1840  PRINT "AIRPORT"; TAB(12);" RNWY LEN  ";"HDG","  DIRECT","   DIST":FOR TF=0 TO 7:PRINT  TAB(2);TF; TAB(14);D(TF); TAB(22);H(TF); TAB(33);:GOSUB 1570:PRINT USING "###";LO;:PRINT TAB(47); USING "###.##";SQR((X(TF)-XP)^2+(Y(TF)-YP)^2):NEXT TF:RETURN
  194. 1850  END 
  195. 1860  CLS:PRINT CHR$(34);"JET PILOT";CHR$(34);" simulates the flying characteristics of a modern high-performance":PRINT"Jet Aircraft.  Before attempting to take off, you must be familiar with the"
  196. 1870  PRINT "instructions in the accompanying .DOCumentation file.  Your controls are:":PRINT
  197. 1880  PRINT"Engine Start Sequence:  Select engine turbine (E), enter engine startmode (T)"
  198. 1890  PRINT"spin turbine (S), start fuel flow (F) at 4500 rpm."
  199. 1900  PRINT:PRINT"Your Aircraft Controls:
  200. 1910  PRINT"[A] Attitude (+-180)         [B] Wheel Brakes (0-100%)"
  201. 1920  PRINT"[C] Drag Chute               [E] Ejection Seat"
  202. 1930  PRINT"[F] Flaps (0-100%)           [H] Angle of Bank (+-90 deg)"
  203. 1940  PRINT"[J] Tail Hook                [K] Cancel Malfunction Warnings"
  204. 1950  PRINT"[L] Landing Gear             [N] Nosewheel Steering (+-30 deg)"
  205. 1960  PRINT"[P] Nav Computer             [S] Speed Brakes (0-100%)"
  206. 1970  PRINT"[T] Throttle (0-120%)        [X] Fire Catapult"
  207. 1980  PRINT"[Z] SPOILERS (0-100)"
  208. 1990  PRINT:GOSUB 10100
  209. 2000  CLS:RETURN
  210. 5000  RANDOMIZE VAL(RIGHT$(TIME$,2)):RETURN
  211. 5100  POSY=CSRLIN:POSX=POS(0):PRINT SPACE$(79-POSX):FOR CLR=POSY+1 TO 16:PRINT SPACE$(80);:NEXT:LOCATE POSY,POSX:RETURN
  212. 7000  LOCATE 24,30:INPUT"Want to try again";ANS$:RETURN
  213. 8020  DEF SEG=0:X=PEEK(&H417) AND &H40:IF X=0 THEN POKE &H417,PEEK(&H417) OR &H40
  214. 8030  RETURN
  215. 10100  PRINT TAB(20) "Hit [ENTER] to Continue ";
  216. 10110  IN$=INKEY$:IF IN$="" THEN 10110 ELSE RETURN
  217. 45000  '  ***  EVALUATE EXPRESSION FOR LOCATE  ***
  218. 45010  POSX=INT(POSW/64):POSY=POSW-(64*POSX)
  219. 45020  POSX=POSX+1:POSY=POSY+1:RETURN
  220. 45030  '
  221.